<?php
function require_dir( $dn, $subdir = false, $postfix = '.php', $exclude = '.svn' /*regexp*/ )
{
//	error_reporting(E_ALL);
	if ( is_dir( $dn ) )
	{
		if ( strrpos($dn, DIR_SEPARATOR ) !== strlen($dn)-1 )
			$dn .= DIR_SEPARATOR;

		if ( strpos( get_include_path(), $dn ) !== 0 )
			set_include_path(get_include_path() . PATH_SEPARATOR . $dn);

		$arr = scandir( $dn );
		//var_dump($arr);
		foreach ( $arr as $value )
		{
			$fn = $dn.$value;
			//print $value."<br />\r\n";
			if ( '.' !== $value && '..' !== $value && false === strpos($fn,$exclude) ) //	можно заменить на прегмач
			{
				if ( is_file( $fn )
					&& is_readable( $fn )
					&& false !== strpos($fn,$postfix)
					&& (strlen($value)-strlen($postfix)) == strrpos( $value, $postfix )	//	точно последние символы в строке
					)
				{
					//print $fn."<br />\r\n";
					require_once ($fn) ;
				}
				elseif ( ( $subdir && is_dir( $fn ) ) )
					require_dir( $fn, true );
			}
		}
	}
	else
	{
		//debug_print_backtrace();
        trigger_error('Error in function '.__FUNCTION__.' file '.__FILE__.': Невозможно распознать и загрузить <b>'.$dn.'</b>',E_USER_NOTICE);
	}
	return true;
}

?>